Робота в команді – найважливіший навик розробника
В інституті кілька років тому мене вчили чогось не того. Перші ж робочі дні дали зрозуміти, що найчастіше IT-освіта вкрай далеко від реальності.
Сьогодні ситуація набагато краще – більшість топових Вузів відходять від стандартних форм навчання, і роблять ставку на проектну діяльність і роботу в команді. Це здорово. Це те, чого не вистачає величезної кількості вузів поменше.
Розробка на практиці виявилася більшою мірою зовсім не написанням коду, як я по початку наївно припускав. Перш ніж цей код взагалі почати писати, треба для початку вивчити пачку складних інструментів для командної роботи – всі ці системи контролю версій, CI/CD, баг-трекер і так далі.
Освоєння кожного з цих інструментів у майстерності займає величезну кількість часу. Але результат того вартий. У великих компаніях процес розробки неймовірно складний, і спостерігати за тим, як функціонує кожна його шестірня – це чудово. Особливо, якщо ці шестірні – твоїх рук справа.
Я звик працювати один, я так продуктивніше
Я чув цю фразу від більш досвідченого розробника зі своєї команди. За такими фразами зазвичай йдуть проблеми.
Продуктивність такого розробника зазвичай полягає в його власній швидкості “рішення” завдань.
- Виправив баг всього за 15 хвилин? Тримай два нових!
- Зробив фічу по заголовку завдання? Замовник хотів іншого!
- Зробив фічу – а де тести? Протестував на виявляли у своєму житті таку!
Інструменти для командної роботи, природно, відкидаються за непотрібністю.
Читач, не будь таким розробником.
Вивчи git-flow
Їх багато видів. Можна вивчити. Зрозумій навіщо вони потрібні і які проблеми вирішують.
Git – чудова система контролю версій. Без подібних систем написання спільного коду в проекті на сьогоднішній день неможлива. Git у своїй концепції настільки простий і зручний, що його можна (і потрібно! ) використовувати навіть у власних pet-проектах, де немає командної розробки.
Розберися в CI/CD процесах
Сьогодні багато хороших систем для ci/cd – Teamcity, Jenkins, Travis, Gitlab CI, GitHub Actions і так далі. Всі вони оперують приблизно одними й тими ж поняттями. Розберися в тому, з яких кроків складається весь процес складання твого програми. Навчися писати власні кроки на декларативних мовами, зараз це є вже у всіх.
Написання складних розлогих пайплайнов – це, звичайно, окремий вид мистецтва і болю, але тим не менш це менше зло, ніж ручний деплой незрозумілого шматка коду без мінімальних перевірок.
Навчися працювати з баг-трекерами
Скільки команд при переході на удаленку перенесли свої дошки зі стікерами в Jira?
Jira, ймовірно, ще довго буде тут лідером. Створення і гарне ведення завдань потрібно не тільки, щоб начальник стежив за тим, що ти робиш. Команда повинна розуміти над якими завданнями цілому ведеться робота.
Agile, Scrum – тут же. Не буду говорити плюси і мінуси методологій, зазначу лише те, що скрізь є свої неймовірно корисні практики. Спринтование допомагає з розумінням своєї швидкості роботи над завданнями і термінами їх закриття. Kanban дошка неймовірно зручна для візуального розуміння поточного прогресу, не тільки команди, але й особистого.
Jira, і багато інших баг-трекер не тільки дозволяють створювати завдання з текстом, але і зручно працювати з практиками гнучких методологій розробки.
Почуття внутрішнього задоволення за все зміну стікери на канбан-дошці – відмінний мотиватор. Можна поставитися до цього як до елементу гейміфікації.
Поділися своєю експертизою і досвідом
Але не Word! Є безліч неймовірно зручних систем на сьогоднішній день. Навіть той же Confluence все ще дуже функціональний, потужний і зручний для написання статей.
Окремо тут зазначу чудовий Notion. Писати тексти потрібно в сучасних редакторах. У більшості випадків величезного розмаїття функціоналу того ж word не треба нікому. Написання тексту в Notion за ступенем задоволення порівнянно з програмуванням на знайомому мовою у налаштованої під себе IDE.
Мотивація писати статті зі своїм досвідом думаю і так зрозуміла – до них можна повернутися через час і освіжити свою пам’ять, або ткнути в статтю людини, якщо його питання вже докладно описаний текстом. Правильно написані тексти можуть економити купу як свого часу, так і часу інших людей.